package com.ruoyi.employee1.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工对象 erp_employee
 * 
 * @author ruoyi
 * @date 2025-07-28
 */
public class ErpEmployee extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工ID */
    private Long employeeId;

    /** 在职状态，1表示在职，0表示离职 */
    @Excel(name = "在职状态，1表示在职，0表示离职")
    private Long status;

    /** 姓名 */
    @Excel(name = "姓名")
    private String employeeName;

    /** 性别 */
    @Excel(name = "性别")
    private String employeeGender;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private Long employeePhone;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long departmentId;
    private  String departmentName;

    /** 职位 */
    @Excel(name = "职位")
    private String position;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 学历 */
    @Excel(name = "学历")
    private String education;

    /** 入职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date hireDate;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 办公地点 */
    @Excel(name = "办公地点")
    private String officeLocation;

    /** 离职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaveDate;

    public void setEmployeeId(Long employeeId) 
    {
        this.employeeId = employeeId;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public Long getEmployeeId()
    {
        return employeeId;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setEmployeeName(String employeeName) 
    {
        this.employeeName = employeeName;
    }

    public String getEmployeeName() 
    {
        return employeeName;
    }

    public void setEmployeeGender(String employeeGender) 
    {
        this.employeeGender = employeeGender;
    }

    public String getEmployeeGender() 
    {
        return employeeGender;
    }

    public void setEmployeePhone(Long employeePhone) 
    {
        this.employeePhone = employeePhone;
    }

    public Long getEmployeePhone() 
    {
        return employeePhone;
    }

    public void setDepartmentId(Long departmentId) 
    {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() 
    {
        return departmentId;
    }

    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }

    public void setBirthDate(Date birthDate) 
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() 
    {
        return birthDate;
    }

    public void setEducation(String education) 
    {
        this.education = education;
    }

    public String getEducation() 
    {
        return education;
    }

    public void setHireDate(Date hireDate) 
    {
        this.hireDate = hireDate;
    }

    public Date getHireDate() 
    {
        return hireDate;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setOfficeLocation(String officeLocation) 
    {
        this.officeLocation = officeLocation;
    }

    public String getOfficeLocation() 
    {
        return officeLocation;
    }

    public void setLeaveDate(Date leaveDate) 
    {
        this.leaveDate = leaveDate;
    }

    public Date getLeaveDate() 
    {
        return leaveDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("employeeId", getEmployeeId())
            .append("status", getStatus())
            .append("employeeName", getEmployeeName())
            .append("employeeGender", getEmployeeGender())
            .append("employeePhone", getEmployeePhone())
            .append("departmentId", getDepartmentId())
            .append("position", getPosition())
            .append("birthDate", getBirthDate())
            .append("education", getEducation())
            .append("hireDate", getHireDate())
            .append("email", getEmail())
            .append("officeLocation", getOfficeLocation())
            .append("leaveDate", getLeaveDate())
            .append("remark", getRemark())
            .toString();
    }
}
